{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import rope.base.project\n",
    "from rope.refactor.move import MoveGlobal\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3024\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[12], line 12\u001b[0m\n\u001b[1;32m      9\u001b[0m change_set \u001b[39m=\u001b[39m mover\u001b[39m.\u001b[39mget_changes(\u001b[39m\"\u001b[39m\u001b[39mutils.ticket_utils\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m     10\u001b[0m \u001b[39m# for change in change_set.changes:\u001b[39;00m\n\u001b[1;32m     11\u001b[0m \u001b[39m#     print(change.get_description())\u001b[39;00m\n\u001b[0;32m---> 12\u001b[0m myproject\u001b[39m.\u001b[39;49mdo(change_set)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/project.py:119\u001b[0m, in \u001b[0;36m_Project.do\u001b[0;34m(self, changes, task_handle)\u001b[0m\n\u001b[1;32m    113\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mdo\u001b[39m(\u001b[39mself\u001b[39m, changes, task_handle\u001b[39m=\u001b[39mtaskhandle\u001b[39m.\u001b[39mDEFAULT_TASK_HANDLE):\n\u001b[1;32m    114\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Apply the changes in a `ChangeSet`\u001b[39;00m\n\u001b[1;32m    115\u001b[0m \n\u001b[1;32m    116\u001b[0m \u001b[39m    Most of the time you call this function for committing the\u001b[39;00m\n\u001b[1;32m    117\u001b[0m \u001b[39m    changes for a refactoring.\u001b[39;00m\n\u001b[1;32m    118\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 119\u001b[0m     \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mhistory\u001b[39m.\u001b[39;49mdo(changes, task_handle\u001b[39m=\u001b[39;49mtask_handle)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/history.py:35\u001b[0m, in \u001b[0;36mHistory.do\u001b[0;34m(self, changes, task_handle)\u001b[0m\n\u001b[1;32m     33\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcurrent_change \u001b[39m=\u001b[39m changes\n\u001b[0;32m---> 35\u001b[0m     changes\u001b[39m.\u001b[39;49mdo(change\u001b[39m.\u001b[39;49mcreate_job_set(task_handle, changes))\n\u001b[1;32m     36\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     37\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcurrent_change \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/change.py:67\u001b[0m, in \u001b[0;36mChangeSet.do\u001b[0;34m(self, job_set)\u001b[0m\n\u001b[1;32m     65\u001b[0m done \u001b[39m=\u001b[39m []\n\u001b[1;32m     66\u001b[0m \u001b[39mfor\u001b[39;00m change \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mchanges:\n\u001b[0;32m---> 67\u001b[0m     change\u001b[39m.\u001b[39;49mdo(job_set)\n\u001b[1;32m     68\u001b[0m     done\u001b[39m.\u001b[39mappend(change)\n\u001b[1;32m     69\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtime \u001b[39m=\u001b[39m time\u001b[39m.\u001b[39mtime()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/change.py:128\u001b[0m, in \u001b[0;36m_handle_job_set.<locals>.call\u001b[0;34m(self, job_set)\u001b[0m\n\u001b[1;32m    126\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mcall\u001b[39m(\u001b[39mself\u001b[39m, job_set\u001b[39m=\u001b[39mtaskhandle\u001b[39m.\u001b[39mDEFAULT_JOB_SET):\n\u001b[1;32m    127\u001b[0m     job_set\u001b[39m.\u001b[39mstarted_job(\u001b[39mstr\u001b[39m(\u001b[39mself\u001b[39m))\n\u001b[0;32m--> 128\u001b[0m     function(\u001b[39mself\u001b[39;49m)\n\u001b[1;32m    129\u001b[0m     job_set\u001b[39m.\u001b[39mfinished_job()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/change.py:153\u001b[0m, in \u001b[0;36mChangeContents.do\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    151\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mold_contents \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    152\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mold_contents \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mresource\u001b[39m.\u001b[39mread()\n\u001b[0;32m--> 153\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_operations\u001b[39m.\u001b[39;49mwrite_file(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mresource, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mnew_contents)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/change.py:346\u001b[0m, in \u001b[0;36m_ResourceOperations.write_file\u001b[0;34m(self, resource, contents)\u001b[0m\n\u001b[1;32m    344\u001b[0m fscommands\u001b[39m.\u001b[39mwrite(resource\u001b[39m.\u001b[39mreal_path, data)\n\u001b[1;32m    345\u001b[0m \u001b[39mfor\u001b[39;00m observer \u001b[39min\u001b[39;00m \u001b[39mlist\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mproject\u001b[39m.\u001b[39mobservers):\n\u001b[0;32m--> 346\u001b[0m     observer\u001b[39m.\u001b[39;49mresource_changed(resource)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/resourceobserver.py:31\u001b[0m, in \u001b[0;36mResourceObserver.resource_changed\u001b[0;34m(self, resource)\u001b[0m\n\u001b[1;32m     29\u001b[0m \u001b[39m\u001b[39m\u001b[39m\"\"\"It is called when the resource changes\"\"\"\u001b[39;00m\n\u001b[1;32m     30\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mchanged \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m---> 31\u001b[0m     \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mchanged(resource)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pycore.py:58\u001b[0m, in \u001b[0;36mPyCore._file_changed_for_soa\u001b[0;34m(self, resource, new_resource)\u001b[0m\n\u001b[1;32m     56\u001b[0m old_contents \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mproject\u001b[39m.\u001b[39mhistory\u001b[39m.\u001b[39mcontents_before_current_change(resource)\n\u001b[1;32m     57\u001b[0m \u001b[39mif\u001b[39;00m old_contents \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m     perform_soa_on_changed_scopes(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mproject, resource, old_contents)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pycore.py:307\u001b[0m, in \u001b[0;36mperform_soa_on_changed_scopes\u001b[0;34m(project, resource, old_contents)\u001b[0m\n\u001b[1;32m    304\u001b[0m     end \u001b[39m=\u001b[39m scope\u001b[39m.\u001b[39mget_end()\n\u001b[1;32m    305\u001b[0m     \u001b[39mreturn\u001b[39;00m detector\u001b[39m.\u001b[39mconsume_changes(start, end)\n\u001b[0;32m--> 307\u001b[0m pycore\u001b[39m.\u001b[39;49manalyze_module(resource, should_analyze, search_subscopes)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pycore.py:207\u001b[0m, in \u001b[0;36mPyCore.analyze_module\u001b[0;34m(self, resource, should_analyze, search_subscopes, followed_calls)\u001b[0m\n\u001b[1;32m    205\u001b[0m pymodule \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mresource_to_pyobject(resource)\n\u001b[1;32m    206\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmodule_cache\u001b[39m.\u001b[39mforget_all_data()\n\u001b[0;32m--> 207\u001b[0m rope\u001b[39m.\u001b[39;49mbase\u001b[39m.\u001b[39;49moi\u001b[39m.\u001b[39;49msoa\u001b[39m.\u001b[39;49manalyze_module(\n\u001b[1;32m    208\u001b[0m     \u001b[39mself\u001b[39;49m, pymodule, should_analyze, search_subscopes, followed_calls\n\u001b[1;32m    209\u001b[0m )\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:14\u001b[0m, in \u001b[0;36manalyze_module\u001b[0;34m(pycore, pymodule, should_analyze, search_subscopes, followed_calls)\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39manalyze_module\u001b[39m(pycore, pymodule, should_analyze, search_subscopes, followed_calls):\n\u001b[1;32m      8\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Analyze `pymodule` for static object inference\u001b[39;00m\n\u001b[1;32m      9\u001b[0m \n\u001b[1;32m     10\u001b[0m \u001b[39m    Analyzes scopes for collecting object information.  The analysis\u001b[39;00m\n\u001b[1;32m     11\u001b[0m \u001b[39m    starts from inner scopes.\u001b[39;00m\n\u001b[1;32m     12\u001b[0m \n\u001b[1;32m     13\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n\u001b[0;32m---> 14\u001b[0m     _analyze_node(pycore, pymodule, should_analyze, search_subscopes, followed_calls)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:20\u001b[0m, in \u001b[0;36m_analyze_node\u001b[0;34m(pycore, pydefined, should_analyze, search_subscopes, followed_calls)\u001b[0m\n\u001b[1;32m     18\u001b[0m \u001b[39mif\u001b[39;00m search_subscopes(pydefined):\n\u001b[1;32m     19\u001b[0m     \u001b[39mfor\u001b[39;00m scope \u001b[39min\u001b[39;00m pydefined\u001b[39m.\u001b[39mget_scope()\u001b[39m.\u001b[39mget_scopes():\n\u001b[0;32m---> 20\u001b[0m         _analyze_node(\n\u001b[1;32m     21\u001b[0m             pycore, scope\u001b[39m.\u001b[39;49mpyobject, should_analyze, search_subscopes, followed_calls\n\u001b[1;32m     22\u001b[0m         )\n\u001b[1;32m     23\u001b[0m \u001b[39mif\u001b[39;00m should_analyze(pydefined):\n\u001b[1;32m     24\u001b[0m     new_followed_calls \u001b[39m=\u001b[39m \u001b[39mmax\u001b[39m(\u001b[39m0\u001b[39m, followed_calls \u001b[39m-\u001b[39m \u001b[39m1\u001b[39m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:35\u001b[0m, in \u001b[0;36m_analyze_node\u001b[0;34m(pycore, pydefined, should_analyze, search_subscopes, followed_calls)\u001b[0m\n\u001b[1;32m     33\u001b[0m visitor \u001b[39m=\u001b[39m SOAVisitor(pycore, pydefined, _follow \u001b[39mif\u001b[39;00m followed_calls \u001b[39melse\u001b[39;00m \u001b[39mNone\u001b[39;00m)\n\u001b[1;32m     34\u001b[0m \u001b[39mfor\u001b[39;00m child \u001b[39min\u001b[39;00m rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mast\u001b[39m.\u001b[39miter_child_nodes(pydefined\u001b[39m.\u001b[39mget_ast()):\n\u001b[0;32m---> 35\u001b[0m     visitor\u001b[39m.\u001b[39;49mvisit(child)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m/usr/lib/python3.10/ast.py:426\u001b[0m, in \u001b[0;36mNodeVisitor.generic_visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    424\u001b[0m     \u001b[39mfor\u001b[39;00m item \u001b[39min\u001b[39;00m value:\n\u001b[1;32m    425\u001b[0m         \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(item, AST):\n\u001b[0;32m--> 426\u001b[0m             \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mvisit(item)\n\u001b[1;32m    427\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39misinstance\u001b[39m(value, AST):\n\u001b[1;32m    428\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mvisit(value)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:112\u001b[0m, in \u001b[0;36mSOAVisitor._Assign\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    110\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_Assign\u001b[39m(\u001b[39mself\u001b[39m, node):\n\u001b[1;32m    111\u001b[0m     \u001b[39mfor\u001b[39;00m child \u001b[39min\u001b[39;00m rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mast\u001b[39m.\u001b[39miter_child_nodes(node):\n\u001b[0;32m--> 112\u001b[0m         \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mvisit(child)\n\u001b[1;32m    113\u001b[0m     visitor \u001b[39m=\u001b[39m _SOAAssignVisitor()\n\u001b[1;32m    114\u001b[0m     nodes \u001b[39m=\u001b[39m []\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:71\u001b[0m, in \u001b[0;36mSOAVisitor._Call\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     69\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m     70\u001b[0m     \u001b[39mreturn\u001b[39;00m\n\u001b[0;32m---> 71\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_call(pyfunction, args)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soa.py:82\u001b[0m, in \u001b[0;36mSOAVisitor._call\u001b[0;34m(self, pyfunction, args)\u001b[0m\n\u001b[1;32m     79\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfollow \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m     80\u001b[0m     before \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_parameter_objects(pyfunction)\n\u001b[1;32m     81\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpycore\u001b[39m.\u001b[39mobject_info\u001b[39m.\u001b[39mfunction_called(\n\u001b[0;32m---> 82\u001b[0m     pyfunction, args\u001b[39m.\u001b[39;49mget_arguments(pyfunction\u001b[39m.\u001b[39;49mget_param_names())\n\u001b[1;32m     83\u001b[0m )\n\u001b[1;32m     84\u001b[0m pyfunction\u001b[39m.\u001b[39m_set_parameter_pyobjects(\u001b[39mNone\u001b[39;00m)\n\u001b[1;32m     85\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mfollow \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/arguments.py:20\u001b[0m, in \u001b[0;36mArguments.get_arguments\u001b[0;34m(self, parameters)\u001b[0m\n\u001b[1;32m     18\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_arguments\u001b[39m(\u001b[39mself\u001b[39m, parameters):\n\u001b[1;32m     19\u001b[0m     result \u001b[39m=\u001b[39m []\n\u001b[0;32m---> 20\u001b[0m     \u001b[39mfor\u001b[39;00m pyname \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_pynames(parameters):\n\u001b[1;32m     21\u001b[0m         \u001b[39mif\u001b[39;00m pyname \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m     22\u001b[0m             result\u001b[39m.\u001b[39mappend(\u001b[39mNone\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/arguments.py:31\u001b[0m, in \u001b[0;36mArguments.get_pynames\u001b[0;34m(self, parameters)\u001b[0m\n\u001b[1;32m     29\u001b[0m \u001b[39mfor\u001b[39;00m index, arg \u001b[39min\u001b[39;00m \u001b[39menumerate\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39margs):\n\u001b[1;32m     30\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(arg, ast\u001b[39m.\u001b[39mkeyword) \u001b[39mand\u001b[39;00m arg\u001b[39m.\u001b[39marg \u001b[39min\u001b[39;00m parameters:\n\u001b[0;32m---> 31\u001b[0m         result[parameters\u001b[39m.\u001b[39mindex(arg\u001b[39m.\u001b[39marg)] \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_evaluate(arg\u001b[39m.\u001b[39;49mvalue)\n\u001b[1;32m     32\u001b[0m     \u001b[39melse\u001b[39;00m:\n\u001b[1;32m     33\u001b[0m         result[index] \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_evaluate(arg)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/arguments.py:41\u001b[0m, in \u001b[0;36mArguments._evaluate\u001b[0;34m(self, ast_node)\u001b[0m\n\u001b[1;32m     40\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_evaluate\u001b[39m(\u001b[39mself\u001b[39m, ast_node):\n\u001b[0;32m---> 41\u001b[0m     \u001b[39mreturn\u001b[39;00m rope\u001b[39m.\u001b[39;49mbase\u001b[39m.\u001b[39;49mevaluate\u001b[39m.\u001b[39;49meval_node(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mscope, ast_node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:36\u001b[0m, in \u001b[0;36meval_node\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     31\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node\u001b[39m(scope, node):\n\u001b[1;32m     32\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Evaluate a `ast.AST` node and return a PyName\u001b[39;00m\n\u001b[1;32m     33\u001b[0m \n\u001b[1;32m     34\u001b[0m \u001b[39m    Return `None` if the expression cannot be evaluated.\u001b[39;00m\n\u001b[1;32m     35\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n\u001b[0;32m---> 36\u001b[0m     \u001b[39mreturn\u001b[39;00m eval_node2(scope, node)[\u001b[39m1\u001b[39m]\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:41\u001b[0m, in \u001b[0;36meval_node2\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     39\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node2\u001b[39m(scope, node):\n\u001b[1;32m     40\u001b[0m     evaluator \u001b[39m=\u001b[39m StatementEvaluator(scope)\n\u001b[0;32m---> 41\u001b[0m     evaluator\u001b[39m.\u001b[39;49mvisit(node)\n\u001b[1;32m     42\u001b[0m     \u001b[39mreturn\u001b[39;00m evaluator\u001b[39m.\u001b[39mold_result, evaluator\u001b[39m.\u001b[39mresult\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:206\u001b[0m, in \u001b[0;36mStatementEvaluator._Call\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    203\u001b[0m     pyfunction \u001b[39m=\u001b[39m pyobject[\u001b[39m\"\u001b[39m\u001b[39m__call__\u001b[39m\u001b[39m\"\u001b[39m]\u001b[39m.\u001b[39mget_object()\n\u001b[1;32m    204\u001b[0m \u001b[39mif\u001b[39;00m pyfunction \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    205\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mresult \u001b[39m=\u001b[39m rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpynames\u001b[39m.\u001b[39mUnboundName(\n\u001b[0;32m--> 206\u001b[0m         pyobject\u001b[39m=\u001b[39m_get_returned(pyfunction)\n\u001b[1;32m    207\u001b[0m     )\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:187\u001b[0m, in \u001b[0;36mStatementEvaluator._Call.<locals>._get_returned\u001b[0;34m(pyobject)\u001b[0m\n\u001b[1;32m    185\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_get_returned\u001b[39m(pyobject):\n\u001b[1;32m    186\u001b[0m     args \u001b[39m=\u001b[39m arguments\u001b[39m.\u001b[39mcreate_arguments(primary, pyobject, node, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mscope)\n\u001b[0;32m--> 187\u001b[0m     \u001b[39mreturn\u001b[39;00m pyobject\u001b[39m.\u001b[39;49mget_returned_object(args)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:73\u001b[0m, in \u001b[0;36mPyFunction.get_returned_object\u001b[0;34m(self, args)\u001b[0m\n\u001b[1;32m     72\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_returned_object\u001b[39m(\u001b[39mself\u001b[39m, args):\n\u001b[0;32m---> 73\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mreturned\u001b[39m.\u001b[39;49mget(args)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynames.py:208\u001b[0m, in \u001b[0;36m_Inferred.get\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m    205\u001b[0m \u001b[39m@utils\u001b[39m\u001b[39m.\u001b[39mprevent_recursion(_circular_inference)\n\u001b[1;32m    206\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m    207\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mor\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 208\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_inferred(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds))\n\u001b[1;32m    209\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    210\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpyobjects\u001b[39m.\u001b[39mget_unknown())\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:45\u001b[0m, in \u001b[0;36mPyFunction._infer_returned\u001b[0;34m(self, args)\u001b[0m\n\u001b[1;32m     44\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_infer_returned\u001b[39m(\u001b[39mself\u001b[39m, args\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m):\n\u001b[0;32m---> 45\u001b[0m     \u001b[39mreturn\u001b[39;00m rope\u001b[39m.\u001b[39;49mbase\u001b[39m.\u001b[39;49moi\u001b[39m.\u001b[39;49msoi\u001b[39m.\u001b[39;49minfer_returned_object(\u001b[39mself\u001b[39;49m, args)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:21\u001b[0m, in \u001b[0;36minfer_returned_object\u001b[0;34m(pyfunction, args)\u001b[0m\n\u001b[1;32m     19\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m     20\u001b[0m     \u001b[39mreturn\u001b[39;00m result\n\u001b[0;32m---> 21\u001b[0m result \u001b[39m=\u001b[39m _infer_returned(pyfunction, args)\n\u001b[1;32m     22\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m     23\u001b[0m     \u001b[39mif\u001b[39;00m args \u001b[39mand\u001b[39;00m pyfunction\u001b[39m.\u001b[39mget_module()\u001b[39m.\u001b[39mget_resource() \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:114\u001b[0m, in \u001b[0;36m_infer_returned\u001b[0;34m(pyobject, args)\u001b[0m\n\u001b[1;32m    112\u001b[0m \u001b[39mif\u001b[39;00m resulting_pyname \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    113\u001b[0m     \u001b[39mcontinue\u001b[39;00m\n\u001b[0;32m--> 114\u001b[0m pyobject \u001b[39m=\u001b[39m resulting_pyname\u001b[39m.\u001b[39;49mget_object()\n\u001b[1;32m    115\u001b[0m \u001b[39mif\u001b[39;00m pyobject \u001b[39m==\u001b[39m pyobjects\u001b[39m.\u001b[39mget_unknown():\n\u001b[1;32m    116\u001b[0m     \u001b[39mcontinue\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynamesdef.py:28\u001b[0m, in \u001b[0;36mAssignedName.get_object\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     27\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_object\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m---> 28\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpyobject\u001b[39m.\u001b[39;49mget()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynames.py:208\u001b[0m, in \u001b[0;36m_Inferred.get\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m    205\u001b[0m \u001b[39m@utils\u001b[39m\u001b[39m.\u001b[39mprevent_recursion(_circular_inference)\n\u001b[1;32m    206\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m    207\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mor\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 208\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_inferred(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds))\n\u001b[1;32m    209\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    210\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpyobjects\u001b[39m.\u001b[39mget_unknown())\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynamesdef.py:25\u001b[0m, in \u001b[0;36mAssignedName._get_inferred\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     22\u001b[0m \u001b[39m@utils\u001b[39m\u001b[39m.\u001b[39mprevent_recursion(\u001b[39mlambda\u001b[39;00m: \u001b[39mNone\u001b[39;00m)\n\u001b[1;32m     23\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_get_inferred\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m     24\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmodule \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m---> 25\u001b[0m         \u001b[39mreturn\u001b[39;00m rope\u001b[39m.\u001b[39;49mbase\u001b[39m.\u001b[39;49moi\u001b[39m.\u001b[39;49msoi\u001b[39m.\u001b[39;49minfer_assigned_object(\u001b[39mself\u001b[39;49m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:66\u001b[0m, in \u001b[0;36minfer_assigned_object\u001b[0;34m(pyname)\u001b[0m\n\u001b[1;32m     64\u001b[0m     \u001b[39mreturn\u001b[39;00m\n\u001b[1;32m     65\u001b[0m \u001b[39mfor\u001b[39;00m assignment \u001b[39min\u001b[39;00m \u001b[39mreversed\u001b[39m(pyname\u001b[39m.\u001b[39massignments):\n\u001b[0;32m---> 66\u001b[0m     result \u001b[39m=\u001b[39m _infer_assignment(assignment, pyname\u001b[39m.\u001b[39;49mmodule)\n\u001b[1;32m     67\u001b[0m     \u001b[39mif\u001b[39;00m (\n\u001b[1;32m     68\u001b[0m         \u001b[39misinstance\u001b[39m(result, rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mbuiltins\u001b[39m.\u001b[39mBuiltinUnknown)\n\u001b[1;32m     69\u001b[0m         \u001b[39mand\u001b[39;00m result\u001b[39m.\u001b[39mget_name() \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mNotImplementedType\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m     70\u001b[0m     ):\n\u001b[1;32m     71\u001b[0m         \u001b[39mbreak\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:143\u001b[0m, in \u001b[0;36m_infer_assignment\u001b[0;34m(assignment, pymodule)\u001b[0m\n\u001b[1;32m    141\u001b[0m \u001b[39m@_ignore_inferred\u001b[39m\n\u001b[1;32m    142\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_infer_assignment\u001b[39m(assignment, pymodule):\n\u001b[0;32m--> 143\u001b[0m     result \u001b[39m=\u001b[39m _follow_pyname(assignment, pymodule)\n\u001b[1;32m    144\u001b[0m     \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    145\u001b[0m         \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:176\u001b[0m, in \u001b[0;36m_follow_pyname\u001b[0;34m(assignment, pymodule, lineno)\u001b[0m\n\u001b[1;32m    174\u001b[0m     lineno \u001b[39m=\u001b[39m _get_lineno_for_node(assign_node)\n\u001b[1;32m    175\u001b[0m holding_scope \u001b[39m=\u001b[39m pymodule\u001b[39m.\u001b[39mget_scope()\u001b[39m.\u001b[39mget_inner_scope_for_line(lineno)\n\u001b[0;32m--> 176\u001b[0m pyname \u001b[39m=\u001b[39m evaluate\u001b[39m.\u001b[39;49meval_node(holding_scope, assign_node)\n\u001b[1;32m    177\u001b[0m \u001b[39mif\u001b[39;00m pyname \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    178\u001b[0m     result \u001b[39m=\u001b[39m pyname\u001b[39m.\u001b[39mget_object()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:36\u001b[0m, in \u001b[0;36meval_node\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     31\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node\u001b[39m(scope, node):\n\u001b[1;32m     32\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Evaluate a `ast.AST` node and return a PyName\u001b[39;00m\n\u001b[1;32m     33\u001b[0m \n\u001b[1;32m     34\u001b[0m \u001b[39m    Return `None` if the expression cannot be evaluated.\u001b[39;00m\n\u001b[1;32m     35\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n\u001b[0;32m---> 36\u001b[0m     \u001b[39mreturn\u001b[39;00m eval_node2(scope, node)[\u001b[39m1\u001b[39m]\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:41\u001b[0m, in \u001b[0;36meval_node2\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     39\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node2\u001b[39m(scope, node):\n\u001b[1;32m     40\u001b[0m     evaluator \u001b[39m=\u001b[39m StatementEvaluator(scope)\n\u001b[0;32m---> 41\u001b[0m     evaluator\u001b[39m.\u001b[39;49mvisit(node)\n\u001b[1;32m     42\u001b[0m     \u001b[39mreturn\u001b[39;00m evaluator\u001b[39m.\u001b[39mold_result, evaluator\u001b[39m.\u001b[39mresult\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:335\u001b[0m, in \u001b[0;36mStatementEvaluator._Subscript\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    333\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_call_function(node\u001b[39m.\u001b[39mvalue, \u001b[39m\"\u001b[39m\u001b[39m__getitem__\u001b[39m\u001b[39m\"\u001b[39m, [node\u001b[39m.\u001b[39mslice])\n\u001b[1;32m    334\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39misinstance\u001b[39m(node\u001b[39m.\u001b[39mslice, ast\u001b[39m.\u001b[39mexpr):\n\u001b[0;32m--> 335\u001b[0m     \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_call_function(node\u001b[39m.\u001b[39;49mvalue, \u001b[39m\"\u001b[39;49m\u001b[39m__getitem__\u001b[39;49m\u001b[39m\"\u001b[39;49m, [node\u001b[39m.\u001b[39;49mvalue])\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:343\u001b[0m, in \u001b[0;36mStatementEvaluator._call_function\u001b[0;34m(self, node, function_name, other_args)\u001b[0m\n\u001b[1;32m    341\u001b[0m pyname \u001b[39m=\u001b[39m eval_node(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mscope, node)\n\u001b[1;32m    342\u001b[0m \u001b[39mif\u001b[39;00m pyname \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 343\u001b[0m     pyobject \u001b[39m=\u001b[39m pyname\u001b[39m.\u001b[39;49mget_object()\n\u001b[1;32m    344\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m    345\u001b[0m     \u001b[39mreturn\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynamesdef.py:28\u001b[0m, in \u001b[0;36mAssignedName.get_object\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     27\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_object\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m---> 28\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpyobject\u001b[39m.\u001b[39;49mget()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynames.py:208\u001b[0m, in \u001b[0;36m_Inferred.get\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m    205\u001b[0m \u001b[39m@utils\u001b[39m\u001b[39m.\u001b[39mprevent_recursion(_circular_inference)\n\u001b[1;32m    206\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget\u001b[39m(\u001b[39mself\u001b[39m, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m    207\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mor\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 208\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_inferred(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds))\n\u001b[1;32m    209\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    210\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mset(rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpyobjects\u001b[39m.\u001b[39mget_unknown())\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynamesdef.py:25\u001b[0m, in \u001b[0;36mAssignedName._get_inferred\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     22\u001b[0m \u001b[39m@utils\u001b[39m\u001b[39m.\u001b[39mprevent_recursion(\u001b[39mlambda\u001b[39;00m: \u001b[39mNone\u001b[39;00m)\n\u001b[1;32m     23\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_get_inferred\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m     24\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmodule \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m---> 25\u001b[0m         \u001b[39mreturn\u001b[39;00m rope\u001b[39m.\u001b[39;49mbase\u001b[39m.\u001b[39;49moi\u001b[39m.\u001b[39;49msoi\u001b[39m.\u001b[39;49minfer_assigned_object(\u001b[39mself\u001b[39;49m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:66\u001b[0m, in \u001b[0;36minfer_assigned_object\u001b[0;34m(pyname)\u001b[0m\n\u001b[1;32m     64\u001b[0m     \u001b[39mreturn\u001b[39;00m\n\u001b[1;32m     65\u001b[0m \u001b[39mfor\u001b[39;00m assignment \u001b[39min\u001b[39;00m \u001b[39mreversed\u001b[39m(pyname\u001b[39m.\u001b[39massignments):\n\u001b[0;32m---> 66\u001b[0m     result \u001b[39m=\u001b[39m _infer_assignment(assignment, pyname\u001b[39m.\u001b[39;49mmodule)\n\u001b[1;32m     67\u001b[0m     \u001b[39mif\u001b[39;00m (\n\u001b[1;32m     68\u001b[0m         \u001b[39misinstance\u001b[39m(result, rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mbuiltins\u001b[39m.\u001b[39mBuiltinUnknown)\n\u001b[1;32m     69\u001b[0m         \u001b[39mand\u001b[39;00m result\u001b[39m.\u001b[39mget_name() \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mNotImplementedType\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m     70\u001b[0m     ):\n\u001b[1;32m     71\u001b[0m         \u001b[39mbreak\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:143\u001b[0m, in \u001b[0;36m_infer_assignment\u001b[0;34m(assignment, pymodule)\u001b[0m\n\u001b[1;32m    141\u001b[0m \u001b[39m@_ignore_inferred\u001b[39m\n\u001b[1;32m    142\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_infer_assignment\u001b[39m(assignment, pymodule):\n\u001b[0;32m--> 143\u001b[0m     result \u001b[39m=\u001b[39m _follow_pyname(assignment, pymodule)\n\u001b[1;32m    144\u001b[0m     \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    145\u001b[0m         \u001b[39mreturn\u001b[39;00m \u001b[39mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:47\u001b[0m, in \u001b[0;36mignore_exception.<locals>._decorator.<locals>.newfunc\u001b[0;34m(*args, **kwds)\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mnewfunc\u001b[39m(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwds):\n\u001b[1;32m     46\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 47\u001b[0m         \u001b[39mreturn\u001b[39;00m func(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     48\u001b[0m     \u001b[39mexcept\u001b[39;00m exception_class:\n\u001b[1;32m     49\u001b[0m         \u001b[39mpass\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/oi/soi.py:176\u001b[0m, in \u001b[0;36m_follow_pyname\u001b[0;34m(assignment, pymodule, lineno)\u001b[0m\n\u001b[1;32m    174\u001b[0m     lineno \u001b[39m=\u001b[39m _get_lineno_for_node(assign_node)\n\u001b[1;32m    175\u001b[0m holding_scope \u001b[39m=\u001b[39m pymodule\u001b[39m.\u001b[39mget_scope()\u001b[39m.\u001b[39mget_inner_scope_for_line(lineno)\n\u001b[0;32m--> 176\u001b[0m pyname \u001b[39m=\u001b[39m evaluate\u001b[39m.\u001b[39;49meval_node(holding_scope, assign_node)\n\u001b[1;32m    177\u001b[0m \u001b[39mif\u001b[39;00m pyname \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    178\u001b[0m     result \u001b[39m=\u001b[39m pyname\u001b[39m.\u001b[39mget_object()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:36\u001b[0m, in \u001b[0;36meval_node\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     31\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node\u001b[39m(scope, node):\n\u001b[1;32m     32\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"Evaluate a `ast.AST` node and return a PyName\u001b[39;00m\n\u001b[1;32m     33\u001b[0m \n\u001b[1;32m     34\u001b[0m \u001b[39m    Return `None` if the expression cannot be evaluated.\u001b[39;00m\n\u001b[1;32m     35\u001b[0m \u001b[39m    \"\"\"\u001b[39;00m\n\u001b[0;32m---> 36\u001b[0m     \u001b[39mreturn\u001b[39;00m eval_node2(scope, node)[\u001b[39m1\u001b[39m]\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:41\u001b[0m, in \u001b[0;36meval_node2\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     39\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node2\u001b[39m(scope, node):\n\u001b[1;32m     40\u001b[0m     evaluator \u001b[39m=\u001b[39m StatementEvaluator(scope)\n\u001b[0;32m---> 41\u001b[0m     evaluator\u001b[39m.\u001b[39;49mvisit(node)\n\u001b[1;32m     42\u001b[0m     \u001b[39mreturn\u001b[39;00m evaluator\u001b[39m.\u001b[39mold_result, evaluator\u001b[39m.\u001b[39mresult\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:181\u001b[0m, in \u001b[0;36mStatementEvaluator._Call\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    180\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_Call\u001b[39m(\u001b[39mself\u001b[39m, node):\n\u001b[0;32m--> 181\u001b[0m     primary, pyobject \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_primary_and_object_for_node(node\u001b[39m.\u001b[39;49mfunc)\n\u001b[1;32m    182\u001b[0m     \u001b[39mif\u001b[39;00m pyobject \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    183\u001b[0m         \u001b[39mreturn\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:323\u001b[0m, in \u001b[0;36mStatementEvaluator._get_primary_and_object_for_node\u001b[0;34m(self, stmt)\u001b[0m\n\u001b[1;32m    322\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m_get_primary_and_object_for_node\u001b[39m(\u001b[39mself\u001b[39m, stmt):\n\u001b[0;32m--> 323\u001b[0m     primary, pyname \u001b[39m=\u001b[39m eval_node2(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mscope, stmt)\n\u001b[1;32m    324\u001b[0m     pyobject \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[1;32m    325\u001b[0m     \u001b[39mif\u001b[39;00m pyname \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:41\u001b[0m, in \u001b[0;36meval_node2\u001b[0;34m(scope, node)\u001b[0m\n\u001b[1;32m     39\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39meval_node2\u001b[39m(scope, node):\n\u001b[1;32m     40\u001b[0m     evaluator \u001b[39m=\u001b[39m StatementEvaluator(scope)\n\u001b[0;32m---> 41\u001b[0m     evaluator\u001b[39m.\u001b[39;49mvisit(node)\n\u001b[1;32m     42\u001b[0m     \u001b[39mreturn\u001b[39;00m evaluator\u001b[39m.\u001b[39mold_result, evaluator\u001b[39m.\u001b[39mresult\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:66\u001b[0m, in \u001b[0;36mRopeNodeVisitor.visit\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m     64\u001b[0m method \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m node\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\n\u001b[1;32m     65\u001b[0m visitor \u001b[39m=\u001b[39m \u001b[39mgetattr\u001b[39m(\u001b[39mself\u001b[39m, method, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mgeneric_visit)\n\u001b[0;32m---> 66\u001b[0m \u001b[39mreturn\u001b[39;00m visitor(node)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/evaluate.py:176\u001b[0m, in \u001b[0;36mStatementEvaluator._Attribute\u001b[0;34m(self, node)\u001b[0m\n\u001b[1;32m    174\u001b[0m \u001b[39mif\u001b[39;00m pyname\u001b[39m.\u001b[39mget_object() \u001b[39m!=\u001b[39m rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpyobjects\u001b[39m.\u001b[39mget_unknown():\n\u001b[1;32m    175\u001b[0m     \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 176\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mresult \u001b[39m=\u001b[39m pyname\u001b[39m.\u001b[39;49mget_object()[node\u001b[39m.\u001b[39;49mattr]\n\u001b[1;32m    177\u001b[0m     \u001b[39mexcept\u001b[39;00m exceptions\u001b[39m.\u001b[39mAttributeNotFoundError:\n\u001b[1;32m    178\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mresult \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:30\u001b[0m, in \u001b[0;36mPyObject.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m     28\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m__getitem__\u001b[39m(\u001b[39mself\u001b[39m, key):\n\u001b[1;32m     29\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"The same as ``get_attribute(key)``\"\"\"\u001b[39;00m\n\u001b[0;32m---> 30\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_attribute(key)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:216\u001b[0m, in \u001b[0;36mPyDefinedObject.get_attribute\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m    214\u001b[0m \u001b[39mif\u001b[39;00m name \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes():\n\u001b[1;32m    215\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes()[name]\n\u001b[0;32m--> 216\u001b[0m \u001b[39mif\u001b[39;00m name \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_concluded_attributes():\n\u001b[1;32m    217\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_concluded_attributes()[name]\n\u001b[1;32m    218\u001b[0m \u001b[39mraise\u001b[39;00m exceptions\u001b[39m.\u001b[39mAttributeNotFoundError(\u001b[39m\"\u001b[39m\u001b[39mAttribute \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m not found\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m%\u001b[39m name)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:203\u001b[0m, in \u001b[0;36mPyDefinedObject._get_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    201\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    202\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes()\n\u001b[0;32m--> 203\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_create_concluded_attributes())\n\u001b[1;32m    204\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:262\u001b[0m, in \u001b[0;36mPyPackage._create_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    260\u001b[0m \u001b[39mif\u001b[39;00m init_dot_py:\n\u001b[1;32m    261\u001b[0m     init_object \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpycore\u001b[39m.\u001b[39mproject\u001b[39m.\u001b[39mget_pymodule(init_dot_py)\n\u001b[0;32m--> 262\u001b[0m     result\u001b[39m.\u001b[39mupdate(init_object\u001b[39m.\u001b[39;49mget_attributes())\n\u001b[1;32m    263\u001b[0m \u001b[39mreturn\u001b[39;00m result\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:208\u001b[0m, in \u001b[0;36mPyDefinedObject.get_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_attributes\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m    207\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mattributes\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 208\u001b[0m         result \u001b[39m=\u001b[39m \u001b[39mdict\u001b[39m(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_concluded_attributes())\n\u001b[1;32m    209\u001b[0m         result\u001b[39m.\u001b[39mupdate(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes())\n\u001b[1;32m    210\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mattributes\u001b[39m.\u001b[39mset(result)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:203\u001b[0m, in \u001b[0;36mPyDefinedObject._get_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    201\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    202\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes()\n\u001b[0;32m--> 203\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_create_concluded_attributes())\n\u001b[1;32m    204\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:211\u001b[0m, in \u001b[0;36mPyModule._create_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    209\u001b[0m result \u001b[39m=\u001b[39m {}\n\u001b[1;32m    210\u001b[0m \u001b[39mfor\u001b[39;00m star_import \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mstar_imports:\n\u001b[0;32m--> 211\u001b[0m     result\u001b[39m.\u001b[39mupdate(star_import\u001b[39m.\u001b[39;49mget_names())\n\u001b[1;32m    212\u001b[0m \u001b[39mreturn\u001b[39;00m result\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:667\u001b[0m, in \u001b[0;36mStarImport.get_names\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    665\u001b[0m result \u001b[39m=\u001b[39m {}\n\u001b[1;32m    666\u001b[0m imported \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mimported_module\u001b[39m.\u001b[39mget_object()\n\u001b[0;32m--> 667\u001b[0m \u001b[39mfor\u001b[39;00m name \u001b[39min\u001b[39;00m imported:\n\u001b[1;32m    668\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m name\u001b[39m.\u001b[39mstartswith(\u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m):\n\u001b[1;32m    669\u001b[0m         result[name] \u001b[39m=\u001b[39m pynamesdef\u001b[39m.\u001b[39mImportedName(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mimported_module, name)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:67\u001b[0m, in \u001b[0;36mPyObject.__iter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m     65\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39m__iter__\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m     66\u001b[0m \u001b[39m    \u001b[39m\u001b[39m\"\"\"The same as ``iter(self.get_attributes())``\"\"\"\u001b[39;00m\n\u001b[0;32m---> 67\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39miter\u001b[39m(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_attributes())\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:208\u001b[0m, in \u001b[0;36mPyDefinedObject.get_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_attributes\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m    207\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mattributes\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 208\u001b[0m         result \u001b[39m=\u001b[39m \u001b[39mdict\u001b[39m(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_concluded_attributes())\n\u001b[1;32m    209\u001b[0m         result\u001b[39m.\u001b[39mupdate(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes())\n\u001b[1;32m    210\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mattributes\u001b[39m.\u001b[39mset(result)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjects.py:203\u001b[0m, in \u001b[0;36mPyDefinedObject._get_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    201\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    202\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_structural_attributes()\n\u001b[0;32m--> 203\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mset(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_create_concluded_attributes())\n\u001b[1;32m    204\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mconcluded_attributes\u001b[39m.\u001b[39mget()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/utils/__init__.py:32\u001b[0m, in \u001b[0;36mprevent_recursion.<locals>.decorator.<locals>.newfunc\u001b[0;34m(self, *args, **kwds)\u001b[0m\n\u001b[1;32m     30\u001b[0m \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mTrue\u001b[39;00m)\n\u001b[1;32m     31\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 32\u001b[0m     \u001b[39mreturn\u001b[39;00m func(\u001b[39mself\u001b[39;49m, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwds)\n\u001b[1;32m     33\u001b[0m \u001b[39mfinally\u001b[39;00m:\n\u001b[1;32m     34\u001b[0m     \u001b[39msetattr\u001b[39m(\u001b[39mself\u001b[39m, name, \u001b[39mFalse\u001b[39;00m)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:211\u001b[0m, in \u001b[0;36mPyModule._create_concluded_attributes\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    209\u001b[0m result \u001b[39m=\u001b[39m {}\n\u001b[1;32m    210\u001b[0m \u001b[39mfor\u001b[39;00m star_import \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mstar_imports:\n\u001b[0;32m--> 211\u001b[0m     result\u001b[39m.\u001b[39mupdate(star_import\u001b[39m.\u001b[39;49mget_names())\n\u001b[1;32m    212\u001b[0m \u001b[39mreturn\u001b[39;00m result\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:666\u001b[0m, in \u001b[0;36mStarImport.get_names\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    664\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_names\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[1;32m    665\u001b[0m     result \u001b[39m=\u001b[39m {}\n\u001b[0;32m--> 666\u001b[0m     imported \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mimported_module\u001b[39m.\u001b[39;49mget_object()\n\u001b[1;32m    667\u001b[0m     \u001b[39mfor\u001b[39;00m name \u001b[39min\u001b[39;00m imported:\n\u001b[1;32m    668\u001b[0m         \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m name\u001b[39m.\u001b[39mstartswith(\u001b[39m\"\u001b[39m\u001b[39m_\u001b[39m\u001b[39m\"\u001b[39m):\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynames.py:154\u001b[0m, in \u001b[0;36mImportedModule.get_object\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    153\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mget_object\u001b[39m(\u001b[39mself\u001b[39m):\n\u001b[0;32m--> 154\u001b[0m     \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_get_pymodule() \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    155\u001b[0m         \u001b[39mreturn\u001b[39;00m rope\u001b[39m.\u001b[39mbase\u001b[39m.\u001b[39mpyobjects\u001b[39m.\u001b[39mget_unknown()\n\u001b[1;32m    156\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_get_pymodule()\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pynames.py:145\u001b[0m, in \u001b[0;36mImportedModule._get_pymodule\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    141\u001b[0m         pymodule \u001b[39m=\u001b[39m pycore\u001b[39m.\u001b[39mproject\u001b[39m.\u001b[39mget_module(\n\u001b[1;32m    142\u001b[0m             \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mmodule_name, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_current_folder()\n\u001b[1;32m    143\u001b[0m         )\n\u001b[1;32m    144\u001b[0m     \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 145\u001b[0m         pymodule \u001b[39m=\u001b[39m pycore\u001b[39m.\u001b[39;49mproject\u001b[39m.\u001b[39;49mget_relative_module(\n\u001b[1;32m    146\u001b[0m             \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mmodule_name, \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_current_folder(), \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mlevel\n\u001b[1;32m    147\u001b[0m         )\n\u001b[1;32m    148\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpymodule\u001b[39m.\u001b[39mset(pymodule)\n\u001b[1;32m    149\u001b[0m \u001b[39mexcept\u001b[39;00m exceptions\u001b[39m.\u001b[39mModuleNotFoundError:\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/project.py:142\u001b[0m, in \u001b[0;36m_Project.get_relative_module\u001b[0;34m(self, name, folder, level)\u001b[0m\n\u001b[1;32m    140\u001b[0m \u001b[39mif\u001b[39;00m module \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m    141\u001b[0m     \u001b[39mraise\u001b[39;00m \u001b[39mModuleNotFoundError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mModule \u001b[39m\u001b[39m%s\u001b[39;00m\u001b[39m not found\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m%\u001b[39m name)\n\u001b[0;32m--> 142\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpycore\u001b[39m.\u001b[39;49mresource_to_pyobject(module)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pycore.py:135\u001b[0m, in \u001b[0;36mPyCore.resource_to_pyobject\u001b[0;34m(self, resource, force_errors)\u001b[0m\n\u001b[1;32m    134\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mresource_to_pyobject\u001b[39m(\u001b[39mself\u001b[39m, resource, force_errors\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m):\n\u001b[0;32m--> 135\u001b[0m     \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mmodule_cache\u001b[39m.\u001b[39;49mget_pymodule(resource, force_errors)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pycore.py:256\u001b[0m, in \u001b[0;36m_ModuleCache.get_pymodule\u001b[0;34m(self, resource, force_errors)\u001b[0m\n\u001b[1;32m    250\u001b[0m     result \u001b[39m=\u001b[39m pyobjectsdef\u001b[39m.\u001b[39mPyPackage(\n\u001b[1;32m    251\u001b[0m         \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mpycore,\n\u001b[1;32m    252\u001b[0m         resource,\n\u001b[1;32m    253\u001b[0m         force_errors\u001b[39m=\u001b[39mforce_errors,\n\u001b[1;32m    254\u001b[0m     )\n\u001b[1;32m    255\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 256\u001b[0m     result \u001b[39m=\u001b[39m pyobjectsdef\u001b[39m.\u001b[39;49mPyModule(\n\u001b[1;32m    257\u001b[0m         \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mpycore,\n\u001b[1;32m    258\u001b[0m         resource\u001b[39m=\u001b[39;49mresource,\n\u001b[1;32m    259\u001b[0m         force_errors\u001b[39m=\u001b[39;49mforce_errors,\n\u001b[1;32m    260\u001b[0m     )\n\u001b[1;32m    261\u001b[0m     \u001b[39mif\u001b[39;00m result\u001b[39m.\u001b[39mhas_errors:\n\u001b[1;32m    262\u001b[0m         \u001b[39mreturn\u001b[39;00m result\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:173\u001b[0m, in \u001b[0;36mPyModule.__init__\u001b[0;34m(self, pycore, source, resource, force_errors)\u001b[0m\n\u001b[1;32m    171\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhas_errors \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m\n\u001b[1;32m    172\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 173\u001b[0m     source, node \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_init_source(pycore, source, resource)\n\u001b[1;32m    174\u001b[0m \u001b[39mexcept\u001b[39;00m exceptions\u001b[39m.\u001b[39mModuleSyntaxError:\n\u001b[1;32m    175\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhas_errors \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/pyobjectsdef.py:200\u001b[0m, in \u001b[0;36mPyModule._init_source\u001b[0;34m(self, pycore, source_code, resource)\u001b[0m\n\u001b[1;32m    198\u001b[0m         \u001b[39melse\u001b[39;00m:\n\u001b[1;32m    199\u001b[0m             source_bytes \u001b[39m=\u001b[39m source_code\n\u001b[0;32m--> 200\u001b[0m     ast_node \u001b[39m=\u001b[39m ast\u001b[39m.\u001b[39;49mparse(source_bytes, filename\u001b[39m=\u001b[39;49mfilename)\n\u001b[1;32m    201\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mSyntaxError\u001b[39;00m \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m    202\u001b[0m     \u001b[39mraise\u001b[39;00m exceptions\u001b[39m.\u001b[39mModuleSyntaxError(filename, e\u001b[39m.\u001b[39mlineno, e\u001b[39m.\u001b[39mmsg)\n",
      "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/sweepai-u_CIt3kb-py3.10/lib/python3.10/site-packages/rope/base/ast.py:33\u001b[0m, in \u001b[0;36mparse\u001b[0;34m(source, filename, *args, **kwargs)\u001b[0m\n\u001b[1;32m     31\u001b[0m     source \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39mb\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m\n\u001b[1;32m     32\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> 33\u001b[0m     \u001b[39mreturn\u001b[39;00m ast\u001b[39m.\u001b[39;49mparse(source, filename\u001b[39m=\u001b[39;49mfilename, \u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n\u001b[1;32m     34\u001b[0m \u001b[39mexcept\u001b[39;00m (\u001b[39mTypeError\u001b[39;00m, \u001b[39mValueError\u001b[39;00m) \u001b[39mas\u001b[39;00m e:\n\u001b[1;32m     35\u001b[0m     error \u001b[39m=\u001b[39m \u001b[39mSyntaxError\u001b[39;00m()\n",
      "File \u001b[0;32m/usr/lib/python3.10/ast.py:50\u001b[0m, in \u001b[0;36mparse\u001b[0;34m(source, filename, mode, type_comments, feature_version)\u001b[0m\n\u001b[1;32m     48\u001b[0m     feature_version \u001b[39m=\u001b[39m \u001b[39m-\u001b[39m\u001b[39m1\u001b[39m\n\u001b[1;32m     49\u001b[0m \u001b[39m# Else it should be an int giving the minor version for 3.x.\u001b[39;00m\n\u001b[0;32m---> 50\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mcompile\u001b[39;49m(source, filename, mode, flags,\n\u001b[1;32m     51\u001b[0m                _feature_version\u001b[39m=\u001b[39;49mfeature_version)\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "myproject = rope.base.project.Project('../../sweepai')\n",
    "\n",
    "myresource = myproject.get_resource('handlers/on_ticket.py')\n",
    "func_def = \"center(\"\n",
    "offset = myresource.read().find(func_def)\n",
    "print(offset)\n",
    "\n",
    "mover = MoveGlobal(myproject, myresource, offset)\n",
    "change_set = mover.get_changes(\"utils.ticket_utils\")\n",
    "for change in change_set.changes:\n",
    "    print(change.get_description())\n",
    "# myproject.do(change_set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "99\n",
      "--- a/helpers/utils.py\n",
      "+++ b/helpers/utils.py\n",
      "@@ -0,0 +1,5 @@\n",
      "+import math\n",
      "+\n",
      "+\n",
      "+def foo():\n",
      "+    return math.pow(2, 2)\n",
      "\n",
      "--- a/helpers/test2.py\n",
      "+++ b/helpers/test2.py\n",
      "@@ -1,11 +1,8 @@\n",
      "-import math\n",
      "-\n",
      "+import utils\n",
      " def a_func():\n",
      "     a = 1\n",
      "     b = 2 * a\n",
      "-    c = a * foo() + b * 3\n",
      "+    c = a * utils.foo() + b * 3\n",
      "     print(b, c)\n",
      " \n",
      " \n",
      "-def foo():\n",
      "-    return math.pow(2, 2)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "def move_function(\n",
    "    file_path: str,\n",
    "    method_name: str,\n",
    "    destination: str,\n",
    "    project_name: str = \"src\" \n",
    "):\n",
    "    myproject = rope.base.project.Project(project_name)\n",
    "\n",
    "    myresource = myproject.get_resource(file_path)\n",
    "    func_def = f\"def {method_name}(\"\n",
    "    offset = myresource.read().find(func_def) + len(\"def \")\n",
    "    print(offset)\n",
    "\n",
    "    mover = MoveGlobal(myproject, myresource, offset)\n",
    "    change_set = mover.get_changes(destination)\n",
    "    for change in change_set.changes:\n",
    "        print(change.get_description())\n",
    "\n",
    "move_function(\"helpers/test2.py\", \"foo\", \"utils\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.10.10 ('sweepai-u_CIt3kb-py3.10')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.10"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "25d341f3248a096a89b9dbf6eec8e41f63aed02f6ba059df22a49224e3e8f1b0"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
